﻿2026-06-04T00:32:38.5868479Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T00:32:38.5868748Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T00:32:38.5896777Z shell: /usr/bin/bash -e {0}
2026-06-04T00:32:38.5896998Z ##[endgroup]
2026-06-04T00:32:38.6074288Z Requirement quality findings (15); 126 requirements queued for agent review:
2026-06-04T00:32:38.6075883Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6077321Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T00:32:38.6078748Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6080263Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6081375Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T00:32:38.6083045Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T00:32:38.6084241Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6085414Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6086364Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T00:32:38.6087097Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T00:32:38.6087861Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T00:32:38.6088873Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6089899Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6104665Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T00:32:38.6105164Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T00:32:38.6105251Z 
2026-06-04T00:32:38.6105457Z # Requirement quality review
2026-06-04T00:32:38.6105532Z 
2026-06-04T00:32:38.6105863Z You are reviewing 126 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T00:32:38.6106193Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T00:32:38.6106510Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T00:32:38.6106999Z this command's output. Your task is the rubric items below.
2026-06-04T00:32:38.6107086Z 
2026-06-04T00:32:38.6107263Z ## Rubric
2026-06-04T00:32:38.6107337Z 
2026-06-04T00:32:38.6107762Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T00:32:38.6108131Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T00:32:38.6108502Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T00:32:38.6108790Z - **active-voice** — clear subject and active verb.
2026-06-04T00:32:38.6108889Z 
2026-06-04T00:32:38.6110016Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T00:32:38.6110335Z clear concerns.
2026-06-04T00:32:38.6110382Z 
2026-06-04T00:32:38.6110561Z ## Requirements
2026-06-04T00:32:38.6110575Z 
2026-06-04T00:32:38.6111073Z ### REQ-ARCH-1
2026-06-04T00:32:38.6111354Z - Title: Many small acyclically-layered crates
2026-06-04T00:32:38.6111566Z - Required stages: impl
2026-06-04T00:32:38.6111581Z 
2026-06-04T00:32:38.6111765Z ### REQ-ARCH-2
2026-06-04T00:32:38.6112344Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T00:32:38.6112551Z - Required stages: impl
2026-06-04T00:32:38.6112566Z 
2026-06-04T00:32:38.6112748Z ### REQ-ARCH-3
2026-06-04T00:32:38.6113185Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T00:32:38.6113406Z - Required stages: impl, unit
2026-06-04T00:32:38.6113418Z 
2026-06-04T00:32:38.6113571Z ### REQ-ARCH-4
2026-06-04T00:32:38.6113805Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T00:32:38.6113928Z - Required stages: impl, unit
2026-06-04T00:32:38.6113937Z 
2026-06-04T00:32:38.6114047Z ### REQ-DAEMON-1
2026-06-04T00:32:38.6114249Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T00:32:38.6114374Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6114390Z 
2026-06-04T00:32:38.6114503Z ### REQ-DAEMON-2
2026-06-04T00:32:38.6114664Z - Title: Broker/brain split for seamless self-update
2026-06-04T00:32:38.6114797Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6114805Z 
2026-06-04T00:32:38.6114913Z ### REQ-DAEMON-3
2026-06-04T00:32:38.6115236Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T00:32:38.6115366Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6115374Z 
2026-06-04T00:32:38.6115477Z ### REQ-DAEMON-4
2026-06-04T00:32:38.6115622Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T00:32:38.6115752Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6115760Z 
2026-06-04T00:32:38.6115863Z ### REQ-STORE-1
2026-06-04T00:32:38.6116958Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T00:32:38.6117074Z - Required stages: 
2026-06-04T00:32:38.6117093Z 
2026-06-04T00:32:38.6117208Z ### REQ-MANIFEST-1
2026-06-04T00:32:38.6117429Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T00:32:38.6117550Z - Required stages: doc, impl, unit
2026-06-04T00:32:38.6117559Z 
2026-06-04T00:32:38.6117676Z ### REQ-SEAM-SPAWN
2026-06-04T00:32:38.6117796Z - Title: spawn-session seam
2026-06-04T00:32:38.6117925Z - Required stages: impl, unit
2026-06-04T00:32:38.6117933Z 
2026-06-04T00:32:38.6118052Z ### REQ-SEAM-POSTSPAWN
2026-06-04T00:32:38.6118211Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T00:32:38.6118341Z - Required stages: impl, unit
2026-06-04T00:32:38.6118349Z 
2026-06-04T00:32:38.6118462Z ### REQ-SEAM-PSYCHE
2026-06-04T00:32:38.6118635Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T00:32:38.6118764Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6118871Z 
2026-06-04T00:32:38.6118981Z ### REQ-SEAM-HISTORY
2026-06-04T00:32:38.6119391Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T00:32:38.6119532Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6119540Z 
2026-06-04T00:32:38.6119660Z ### REQ-SEAM-ACTIVITY
2026-06-04T00:32:38.6119878Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T00:32:38.6119996Z - Required stages: impl, unit
2026-06-04T00:32:38.6120005Z 
2026-06-04T00:32:38.6120129Z ### REQ-SEAM-INJECT
2026-06-04T00:32:38.6120320Z - Title: inject-input methods configurable per activity-state
2026-06-04T00:32:38.6120449Z - Required stages: impl, unit
2026-06-04T00:32:38.6120458Z 
2026-06-04T00:32:38.6120577Z ### REQ-SEAM-RESUME
2026-06-04T00:32:38.6120794Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T00:32:38.6120929Z - Required stages: impl, unit
2026-06-04T00:32:38.6120938Z 
2026-06-04T00:32:38.6121055Z ### REQ-SEAM-CAPABILITY
2026-06-04T00:32:38.6121241Z - Title: Hostable endpoint-types capability declaration
2026-06-04T00:32:38.6121360Z - Required stages: impl, unit
2026-06-04T00:32:38.6121375Z 
2026-06-04T00:32:38.6121572Z ### REQ-SEAM-UPDATE
2026-06-04T00:32:38.6121772Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T00:32:38.6121889Z - Required stages: impl, unit
2026-06-04T00:32:38.6121898Z 
2026-06-04T00:32:38.6122004Z ### REQ-API-1
2026-06-04T00:32:38.6122197Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T00:32:38.6122324Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6122333Z 
2026-06-04T00:32:38.6122437Z ### REQ-API-2
2026-06-04T00:32:38.6122681Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T00:32:38.6122817Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6122826Z 
2026-06-04T00:32:38.6122931Z ### REQ-API-3
2026-06-04T00:32:38.6123103Z - Title: commune/signoff are file-drops, not commands
2026-06-04T00:32:38.6123233Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6123242Z 
2026-06-04T00:32:38.6123342Z ### REQ-START-1
2026-06-04T00:32:38.6123577Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T00:32:38.6123701Z - Required stages: impl, unit
2026-06-04T00:32:38.6123710Z 
2026-06-04T00:32:38.6123825Z ### REQ-START-2
2026-06-04T00:32:38.6123993Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T00:32:38.6124111Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6124120Z 
2026-06-04T00:32:38.6124232Z ### REQ-START-3
2026-06-04T00:32:38.6124429Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T00:32:38.6124555Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6124564Z 
2026-06-04T00:32:38.6124673Z ### REQ-START-4
2026-06-04T00:32:38.6124833Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T00:32:38.6124954Z - Required stages: impl, unit
2026-06-04T00:32:38.6124964Z 
2026-06-04T00:32:38.6125064Z ### REQ-EP-1
2026-06-04T00:32:38.6125229Z - Title: Day-one endpoint types; open type system
2026-06-04T00:32:38.6125347Z - Required stages: impl, unit
2026-06-04T00:32:38.6125364Z 
2026-06-04T00:32:38.6125462Z ### REQ-EP-2
2026-06-04T00:32:38.6125659Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T00:32:38.6125772Z - Required stages: impl, unit
2026-06-04T00:32:38.6125781Z 
2026-06-04T00:32:38.6125886Z ### REQ-EP-3
2026-06-04T00:32:38.6126099Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T00:32:38.6126219Z - Required stages: impl, unit
2026-06-04T00:32:38.6126227Z 
2026-06-04T00:32:38.6126329Z ### REQ-EP-4
2026-06-04T00:32:38.6126498Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T00:32:38.6126617Z - Required stages: 
2026-06-04T00:32:38.6126626Z 
2026-06-04T00:32:38.6126722Z ### REQ-EP-5
2026-06-04T00:32:38.6127533Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T00:32:38.6127716Z - Required stages: 
2026-06-04T00:32:38.6127728Z 
2026-06-04T00:32:38.6127832Z ### REQ-INST-1
2026-06-04T00:32:38.6128020Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T00:32:38.6128125Z - Required stages: 
2026-06-04T00:32:38.6128133Z 
2026-06-04T00:32:38.6128241Z ### REQ-INST-2
2026-06-04T00:32:38.6128382Z - Title: Per-node files, synced Psyche mind
2026-06-04T00:32:38.6128488Z - Required stages: 
2026-06-04T00:32:38.6128497Z 
2026-06-04T00:32:38.6128607Z ### REQ-INST-3
2026-06-04T00:32:38.6128781Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T00:32:38.6128897Z - Required stages: 
2026-06-04T00:32:38.6128905Z 
2026-06-04T00:32:38.6129012Z ### REQ-INST-4
2026-06-04T00:32:38.6129486Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T00:32:38.6129686Z - Required stages: 
2026-06-04T00:32:38.6129705Z 
2026-06-04T00:32:38.6129886Z ### REQ-INST-5
2026-06-04T00:32:38.6130264Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T00:32:38.6130566Z - Required stages: 
2026-06-04T00:32:38.6130589Z 
2026-06-04T00:32:38.6130768Z ### REQ-INST-6
2026-06-04T00:32:38.6131161Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T00:32:38.6131341Z - Required stages: 
2026-06-04T00:32:38.6131355Z 
2026-06-04T00:32:38.6131532Z ### REQ-INST-7
2026-06-04T00:32:38.6131806Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T00:32:38.6132005Z - Required stages: impl, unit
2026-06-04T00:32:38.6132018Z 
2026-06-04T00:32:38.6132143Z ### REQ-INST-8
2026-06-04T00:32:38.6132316Z - Title: Remote-control mode distinct from local operation
2026-06-04T00:32:38.6132431Z - Required stages: 
2026-06-04T00:32:38.6132439Z 
2026-06-04T00:32:38.6132541Z ### REQ-INST-9
2026-06-04T00:32:38.6132769Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T00:32:38.6132899Z - Required stages: impl, unit
2026-06-04T00:32:38.6132908Z 
2026-06-04T00:32:38.6133009Z ### REQ-INST-10
2026-06-04T00:32:38.6133262Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T00:32:38.6133378Z - Required stages: impl, unit
2026-06-04T00:32:38.6133387Z 
2026-06-04T00:32:38.6133496Z ### REQ-INST-11
2026-06-04T00:32:38.6133752Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T00:32:38.6133868Z - Required stages: impl, unit
2026-06-04T00:32:38.6133876Z 
2026-06-04T00:32:38.6133984Z ### REQ-INST-12
2026-06-04T00:32:38.6134324Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T00:32:38.6134452Z - Required stages: impl, unit
2026-06-04T00:32:38.6134460Z 
2026-06-04T00:32:38.6134571Z ### REQ-INST-13
2026-06-04T00:32:38.6134781Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T00:32:38.6134909Z - Required stages: impl, unit
2026-06-04T00:32:38.6134917Z 
2026-06-04T00:32:38.6135018Z ### REQ-INST-14
2026-06-04T00:32:38.6135462Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T00:32:38.6135578Z - Required stages: 
2026-06-04T00:32:38.6135586Z 
2026-06-04T00:32:38.6135686Z ### REQ-INST-15
2026-06-04T00:32:38.6136557Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T00:32:38.6136662Z - Required stages: 
2026-06-04T00:32:38.6136670Z 
2026-06-04T00:32:38.6136776Z ### REQ-REACH-1
2026-06-04T00:32:38.6136952Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T00:32:38.6137058Z - Required stages: 
2026-06-04T00:32:38.6137066Z 
2026-06-04T00:32:38.6137238Z ### REQ-REACH-2
2026-06-04T00:32:38.6137417Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T00:32:38.6137533Z - Required stages: 
2026-06-04T00:32:38.6137545Z 
2026-06-04T00:32:38.6137650Z ### REQ-MSG-1
2026-06-04T00:32:38.6138179Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T00:32:38.6138310Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6138319Z 
2026-06-04T00:32:38.6138415Z ### REQ-MSG-2
2026-06-04T00:32:38.6138726Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T00:32:38.6138849Z - Required stages: impl, unit
2026-06-04T00:32:38.6138857Z 
2026-06-04T00:32:38.6138955Z ### REQ-MSG-3
2026-06-04T00:32:38.6139556Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T00:32:38.6139687Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6139695Z 
2026-06-04T00:32:38.6139812Z ### REQ-NODE-IDENTITY
2026-06-04T00:32:38.6140154Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T00:32:38.6140276Z - Required stages: impl, unit
2026-06-04T00:32:38.6140284Z 
2026-06-04T00:32:38.6140392Z ### REQ-NET-1
2026-06-04T00:32:38.6140600Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T00:32:38.6140725Z - Required stages: impl, unit
2026-06-04T00:32:38.6140733Z 
2026-06-04T00:32:38.6140838Z ### REQ-NET-2
2026-06-04T00:32:38.6141037Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T00:32:38.6141156Z - Required stages: impl
2026-06-04T00:32:38.6141164Z 
2026-06-04T00:32:38.6141262Z ### REQ-NET-3
2026-06-04T00:32:38.6141456Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T00:32:38.6141568Z - Required stages: 
2026-06-04T00:32:38.6141580Z 
2026-06-04T00:32:38.6141687Z ### REQ-PAIR-1
2026-06-04T00:32:38.6141823Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T00:32:38.6141938Z - Required stages: impl, unit
2026-06-04T00:32:38.6141950Z 
2026-06-04T00:32:38.6142061Z ### REQ-PAIR-2
2026-06-04T00:32:38.6142221Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T00:32:38.6142343Z - Required stages: impl, unit
2026-06-04T00:32:38.6142351Z 
2026-06-04T00:32:38.6142457Z ### REQ-PAIR-3
2026-06-04T00:32:38.6142626Z - Title: Fetch current pairing code from any paired node
2026-06-04T00:32:38.6142747Z - Required stages: impl, unit
2026-06-04T00:32:38.6142754Z 
2026-06-04T00:32:38.6142860Z ### REQ-PAIR-4
2026-06-04T00:32:38.6143001Z - Title: Subnet naming on first pairing
2026-06-04T00:32:38.6143124Z - Required stages: impl, unit
2026-06-04T00:32:38.6143132Z 
2026-06-04T00:32:38.6143236Z ### REQ-PAIR-5
2026-06-04T00:32:38.6143598Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T00:32:38.6143847Z - Required stages: impl, unit
2026-06-04T00:32:38.6143861Z 
2026-06-04T00:32:38.6144024Z ### REQ-PAIR-6
2026-06-04T00:32:38.6144492Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T00:32:38.6145432Z - Required stages: impl, unit
2026-06-04T00:32:38.6145739Z 
2026-06-04T00:32:38.6145940Z ### REQ-PAIR-7
2026-06-04T00:32:38.6146371Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T00:32:38.6146878Z - Required stages: 
2026-06-04T00:32:38.6147123Z 
2026-06-04T00:32:38.6147293Z ### REQ-SEC-1
2026-06-04T00:32:38.6148264Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T00:32:38.6149368Z - Required stages: 
2026-06-04T00:32:38.6149568Z 
2026-06-04T00:32:38.6149706Z ### REQ-NOTIF-1
2026-06-04T00:32:38.6150495Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T00:32:38.6151698Z - Required stages: 
2026-06-04T00:32:38.6151935Z 
2026-06-04T00:32:38.6152123Z ### REQ-NOTIF-2
2026-06-04T00:32:38.6152922Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T00:32:38.6153707Z - Required stages: 
2026-06-04T00:32:38.6153939Z 
2026-06-04T00:32:38.6154101Z ### REQ-UPD-1
2026-06-04T00:32:38.6154563Z - Title: Peer-propagated update over P2P
2026-06-04T00:32:38.6155121Z - Required stages: 
2026-06-04T00:32:38.6155356Z 
2026-06-04T00:32:38.6155514Z ### REQ-UPD-2
2026-06-04T00:32:38.6156007Z - Title: All binaries signature-verified before handoff
2026-06-04T00:32:38.6156631Z - Required stages: impl, unit
2026-06-04T00:32:38.6156972Z 
2026-06-04T00:32:38.6157142Z ### REQ-UPD-3
2026-06-04T00:32:38.6157691Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T00:32:38.6158385Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6158754Z 
2026-06-04T00:32:38.6158922Z ### REQ-UPD-4
2026-06-04T00:32:38.6159625Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T00:32:38.6160542Z - Required stages: impl, unit
2026-06-04T00:32:38.6160891Z 
2026-06-04T00:32:38.6161055Z ### REQ-UPD-5
2026-06-04T00:32:38.6161555Z - Title: spt-core ripple-updates registered adapters
2026-06-04T00:32:38.6162010Z - Required stages: impl, unit
2026-06-04T00:32:38.6162193Z 
2026-06-04T00:32:38.6162295Z ### REQ-TERM-1
2026-06-04T00:32:38.6162644Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T00:32:38.6163034Z - Required stages: impl, unit
2026-06-04T00:32:38.6163213Z 
2026-06-04T00:32:38.6163320Z ### REQ-TERM-2
2026-06-04T00:32:38.6163657Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T00:32:38.6164051Z - Required stages: impl, unit
2026-06-04T00:32:38.6164225Z 
2026-06-04T00:32:38.6164331Z ### REQ-TERM-3
2026-06-04T00:32:38.6164626Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T00:32:38.6164985Z - Required stages: impl, unit
2026-06-04T00:32:38.6165160Z 
2026-06-04T00:32:38.6165280Z ### REQ-TERM-4
2026-06-04T00:32:38.6165837Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T00:32:38.6166452Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6166646Z 
2026-06-04T00:32:38.6166747Z ### REQ-FRONT-1
2026-06-04T00:32:38.6167096Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T00:32:38.6167477Z - Required stages: 
2026-06-04T00:32:38.6167620Z 
2026-06-04T00:32:38.6167732Z ### REQ-INSTALL-1
2026-06-04T00:32:38.6168100Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T00:32:38.6168507Z - Required stages: 
2026-06-04T00:32:38.6168658Z 
2026-06-04T00:32:38.6168760Z ### REQ-INSTALL-2
2026-06-04T00:32:38.6169262Z - Title: Marketplace-repackaging-friendly install
2026-06-04T00:32:38.6169654Z - Required stages: 
2026-06-04T00:32:38.6169802Z 
2026-06-04T00:32:38.6169915Z ### REQ-INSTALL-3
2026-06-04T00:32:38.6170217Z - Title: Idempotent + interactive-optional first run
2026-06-04T00:32:38.6170558Z - Required stages: 
2026-06-04T00:32:38.6170705Z 
2026-06-04T00:32:38.6170808Z ### REQ-INSTALL-4
2026-06-04T00:32:38.6171706Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T00:32:38.6172641Z - Required stages: 
2026-06-04T00:32:38.6172779Z 
2026-06-04T00:32:38.6172888Z ### REQ-MIGRATE-1
2026-06-04T00:32:38.6173215Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T00:32:38.6173586Z - Required stages: 
2026-06-04T00:32:38.6173733Z 
2026-06-04T00:32:38.6173834Z ### REQ-INFRA-1
2026-06-04T00:32:38.6174172Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T00:32:38.6174717Z - Required stages: 
2026-06-04T00:32:38.6174865Z 
2026-06-04T00:32:38.6174974Z ### REQ-DOCS-1
2026-06-04T00:32:38.6175350Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T00:32:38.6175768Z - Required stages: 
2026-06-04T00:32:38.6175910Z 
2026-06-04T00:32:38.6176019Z ### REQ-DOCS-2
2026-06-04T00:32:38.6176337Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T00:32:38.6176709Z - Required stages: 
2026-06-04T00:32:38.6176861Z 
2026-06-04T00:32:38.6176961Z ### REQ-DOCS-3
2026-06-04T00:32:38.6177422Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T00:32:38.6177773Z - Required stages: 
2026-06-04T00:32:38.6177914Z 
2026-06-04T00:32:38.6178026Z ### REQ-DOCS-4
2026-06-04T00:32:38.6178383Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T00:32:38.6178792Z - Required stages: 
2026-06-04T00:32:38.6178945Z 
2026-06-04T00:32:38.6179185Z ### REQ-DOCS-5
2026-06-04T00:32:38.6179569Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T00:32:38.6179982Z - Required stages: 
2026-06-04T00:32:38.6180132Z 
2026-06-04T00:32:38.6180279Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T00:32:38.6180838Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T00:32:38.6181262Z - Required stages: impl, unit
2026-06-04T00:32:38.6181442Z 
2026-06-04T00:32:38.6181587Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T00:32:38.6181961Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T00:32:38.6182336Z - Required stages: impl, unit
2026-06-04T00:32:38.6182523Z 
2026-06-04T00:32:38.6182648Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T00:32:38.6182991Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T00:32:38.6183333Z - Required stages: 
2026-06-04T00:32:38.6183473Z 
2026-06-04T00:32:38.6183597Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T00:32:38.6183981Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T00:32:38.6184390Z - Required stages: impl, unit
2026-06-04T00:32:38.6184572Z 
2026-06-04T00:32:38.6184693Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T00:32:38.6185066Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T00:32:38.6185474Z - Required stages: impl, unit
2026-06-04T00:32:38.6185646Z 
2026-06-04T00:32:38.6185782Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T00:32:38.6186182Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T00:32:38.6186581Z - Required stages: 
2026-06-04T00:32:38.6186729Z 
2026-06-04T00:32:38.6186852Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T00:32:38.6187177Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T00:32:38.6187516Z - Required stages: 
2026-06-04T00:32:38.6187663Z 
2026-06-04T00:32:38.6187799Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T00:32:38.6188179Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T00:32:38.6188560Z - Required stages: impl, unit
2026-06-04T00:32:38.6188743Z 
2026-06-04T00:32:38.6188863Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T00:32:38.6189409Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T00:32:38.6189787Z - Required stages: impl, int
2026-06-04T00:32:38.6189968Z 
2026-06-04T00:32:38.6190101Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T00:32:38.6190481Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T00:32:38.6190861Z - Required stages: impl, unit
2026-06-04T00:32:38.6191037Z 
2026-06-04T00:32:38.6191181Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T00:32:38.6191583Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T00:32:38.6191972Z - Required stages: impl, unit
2026-06-04T00:32:38.6192154Z 
2026-06-04T00:32:38.6192284Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T00:32:38.6192692Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T00:32:38.6193111Z - Required stages: impl, unit
2026-06-04T00:32:38.6193286Z 
2026-06-04T00:32:38.6193519Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T00:32:38.6193906Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T00:32:38.6194273Z - Required stages: impl, unit
2026-06-04T00:32:38.6194455Z 
2026-06-04T00:32:38.6194587Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T00:32:38.6194986Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T00:32:38.6195390Z - Required stages: impl, unit
2026-06-04T00:32:38.6195565Z 
2026-06-04T00:32:38.6195705Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T00:32:38.6196166Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T00:32:38.6196610Z - Required stages: impl, unit
2026-06-04T00:32:38.6196789Z 
2026-06-04T00:32:38.6196903Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T00:32:38.6197363Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T00:32:38.6197854Z - Required stages: impl, unit
2026-06-04T00:32:38.6198036Z 
2026-06-04T00:32:38.6198179Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T00:32:38.6198587Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T00:32:38.6199182Z - Required stages: impl, unit
2026-06-04T00:32:38.6199364Z 
2026-06-04T00:32:38.6199500Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T00:32:38.6199991Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T00:32:38.6200488Z - Required stages: impl, unit
2026-06-04T00:32:38.6200668Z 
2026-06-04T00:32:38.6200798Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T00:32:38.6201565Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T00:32:38.6202181Z - Required stages: impl, unit
2026-06-04T00:32:38.6202352Z 
2026-06-04T00:32:38.6202495Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T00:32:38.6202849Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T00:32:38.6203180Z - Required stages: impl, unit
2026-06-04T00:32:38.6203371Z 
2026-06-04T00:32:38.6203494Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T00:32:38.6203839Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T00:32:38.6204187Z - Required stages: impl, unit
2026-06-04T00:32:38.6204355Z 
2026-06-04T00:32:38.6204488Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T00:32:38.6204891Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T00:32:38.6205262Z - Required stages: impl, unit
2026-06-04T00:32:38.6205443Z 
2026-06-04T00:32:38.6205563Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T00:32:38.6205928Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T00:32:38.6206318Z - Required stages: impl, unit
2026-06-04T00:32:38.6206489Z 
2026-06-04T00:32:38.6206624Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T00:32:38.6206982Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T00:32:38.6207347Z - Required stages: impl, unit
2026-06-04T00:32:38.6207527Z 
2026-06-04T00:32:38.6207648Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T00:32:38.6208002Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T00:32:38.6208368Z - Required stages: impl, unit
2026-06-04T00:32:38.6208548Z 
2026-06-04T00:32:38.6208681Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T00:32:38.6209234Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T00:32:38.6209663Z - Required stages: impl, unit
2026-06-04T00:32:38.6209835Z 
2026-06-04T00:32:38.6209962Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T00:32:38.6210365Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T00:32:38.6210780Z - Required stages: impl, unit
2026-06-04T00:32:38.6210961Z 
2026-06-04T00:32:38.6211087Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T00:32:38.6211490Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T00:32:38.6211891Z - Required stages: impl, unit
2026-06-04T00:32:38.6212069Z 
2026-06-04T00:32:38.6212218Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T00:32:38.6212703Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T00:32:38.6213079Z - Required stages: impl, unit
2026-06-04T00:32:38.6213267Z 
2026-06-04T00:32:38.6213404Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T00:32:38.6213864Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T00:32:38.6214316Z - Required stages: impl, unit
2026-06-04T00:32:38.6214490Z 
2026-06-04T00:32:38.6214614Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T00:32:38.6215024Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T00:32:38.6215465Z - Required stages: impl, unit
2026-06-04T00:32:38.6215642Z 
2026-06-04T00:32:38.6215761Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T00:32:38.6216179Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T00:32:38.6216614Z - Required stages: impl, unit
2026-06-04T00:32:38.6216794Z 
2026-06-04T00:32:38.6216927Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T00:32:38.6217422Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T00:32:38.6217995Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6218184Z 
2026-06-04T00:32:38.6218308Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T00:32:38.6218783Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T00:32:38.6219426Z - Required stages: impl, unit
2026-06-04T00:32:38.6219609Z 
2026-06-04T00:32:38.6219752Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T00:32:38.6220466Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T00:32:38.6221151Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6221345Z 
2026-06-04T00:32:38.6221476Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T00:32:38.6222746Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T00:32:38.6223759Z - Required stages: 
2026-06-04T00:32:38.6223909Z 
2026-06-04T00:32:38.6224058Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T00:32:38.6225048Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T00:32:38.6225984Z - Required stages: 
2026-06-04T00:32:38.6226140Z 
2026-06-04T00:32:38.6226275Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T00:32:38.6227261Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T00:32:38.6228130Z - Required stages: impl, unit
2026-06-04T00:32:38.6228306Z 
2026-06-04T00:32:38.6228442Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T00:32:38.6229413Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T00:32:38.6230232Z - Required stages: impl, unit
2026-06-04T00:32:38.6230418Z 
2026-06-04T00:32:38.6230545Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T00:32:38.6231792Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T00:32:38.6232879Z - Required stages: impl, unit
2026-06-04T00:32:38.6233055Z 
2026-06-04T00:32:38.6233174Z ## How to report back
2026-06-04T00:32:38.6233336Z 
2026-06-04T00:32:38.6233635Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T00:32:38.6233935Z 
2026-06-04T00:32:38.6234035Z     {
2026-06-04T00:32:38.6234315Z       "code": "requirement_quality",
2026-06-04T00:32:38.6234633Z       "requirementId": "REQ-...",
2026-06-04T00:32:38.6235040Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T00:32:38.6235443Z       "message": "<short reason>",
2026-06-04T00:32:38.6235767Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T00:32:38.6236079Z     }
2026-06-04T00:32:38.6236206Z 
2026-06-04T00:32:38.6236427Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T00:32:38.6236895Z deterministic findings above don't need to be repeated.
